\section{Caso de uso: Añadir al carro}
\begin{description}
  \item[Actor:] Cliente
  \item[Precondiciones:] Que el artículo esté en stock.
  \item[Descripción:] El cliente está navegando, ve un producto y
    pulsa sobre el botón situado a su lado \textit{``Añadir al Carro''}.
\end{description}

\subsection{Escenario normal}
\begin{enumerate}
  \item El cliente pincha en el botón de añadir en la web.
  \item La aplicación solicita al controlador el carrito de la sesión.
\item Si no hay carrito, el controlador crea un carrito para la sesión
  actual.
  \item El controlador comprueba si el producto está en stock.
  \item El controlador le dice al carrito creado que añada al producto a si
    mismo.
  \item El carrito comprueba si ya tenía el producto, si ya lo tenía, actualiza
  la cantidad, si no añade el producto al carrito.
\end{enumerate}

\begin{description}
  \item[Postcondición:] si existe un carrito tiene un producto más que
    antes o aumenta la cantidad de un producto existente.
\end{description}

\subsection{Escenario alternativo 1}
\begin{enumerate}
  \setcounter{enumi}{4}
  \item No hay stock del producto de modo que el controlador lanzará
    la excepción \testit{StockInsuficienteException} y la web mostrara
    la información.
\end{enumerate}

\begin{description}
  \item[Postcondición:] existe carrito sin el producto.
\end{description}

\subsection{Escenario alternativo 2}
\begin{enumerate}
  \setcounter{enumi}{5}
  \item Producto no encontrado en la base de datos, el controlador
    lanzará la excepción \testit{ArticulosQuitadosException} y la web mostrara
    la información.
\end{enumerate}

\begin{description}
  \item[Postcondición:] existe carrito sin el producto.
\end{description}
